<?php
/**
 * <https://y.st./>
 * Copyright © 2019 Alex Yst <mailto:copyright@y.st>
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <https://www.gnu.org./licenses/>.
**/

$xhtml = array(
	'<{title}>' => 'A new <code>minequest</code> idea',
	'takedown' => '2017-11-01',
	'<{body}>' => <<<END
<img src="/img/CC_BY-SA_4.0/y.st./weblog/2019/06.jpg" alt="Post office boxes" class="framed-centred-image" width="800" height="480"/>
<section id="diet">
	<h2>Dietary intake</h2>
	<p>
		For breakfast, I had a peanut butter and jelly sandwich.
		For dinner, I had a veggie patty, dairy-free cheese, ketchup, and mustard sandwich.
		I didn&apos;t really have lunch, instead just snacking before and after work.
		In total, I had 119 grams of corn chips and 571 grams of salsa.
	</p>
</section>
<section id="y">
	<h2>Letters to Y</h2>
	<p>
		I meant to wait for the letter carrier by the mailbox the day after I found why someone was sending letters to my complex addressed to Y with no return address.
		Instead, I forgot.
		I Remembered today, after they&apos;d already left my place, but I caught them across the street at the complex there, so I was able to explain the situation.
		It turns out there was a package addressed to Y.
		I don&apos;t know if it was the initial &quot;letter&quot; that prompted the note from the letter carrier asking if I was Y, but it was likely from someone other than the person that sent the postcard, as this one had a return address.
		Having a return address, it actually got returned to them.
		It also turns out that the letters, when they don&apos;t have a return address and can&apos;t be delivered, end up sent to a warehouse in Arizona, where they sit indefinitely.
		The letter carrier assumes they eventually get recycled, and I suppose they would have to be if they aren&apos;t going to endlessly expand the warehouse.
		It turns out there were two more letters addressed to Y today, though the letter carrier hadn&apos;t delivered them to me, as I hadn&apos;t confirmed that I&apos;m Y yet (and I&apos;m not Y).
		These letters aren&apos;t getting delivered to anyone; they&apos;ll be returned if there&apos;s a return address and sent to Arizona otherwise.
		I&apos;m not sure why someone put my cpmplex&apos;s address in that comments section, especially without an actual name or an apartment number.
	</p>
</section>
<section id="drudgery">
	<h2>Drudgery</h2>
	<p>
		My discussion post for the day:
	</p>
	<blockquote>
		<p>
			I enjoy building computers too, though I always get my parts second-hand when I do, so I don&apos;t get to try out the latest technologies like that.
			I also haven&apos;t built very many computers, as I usually use a laptop, and those tend to be full of proprietary connectors, so you can&apos;t simply build one from parts like you can a desktop machine.
		</p>
		<p>
			Anyway, I&apos;ve heard that solid slate drives are much faster, like you said.
			I haven&apos;t gotten to try that out, but it makes sense, as there are far fewer moving parts.
			They&apos;re built using flash memory like a typical $a[USB] storage drive.
			I hear flash memory can only be written to a certain number of times though, unlike hard disk drives, so they don&apos;t last as long.
			You trade longevity of the drive for speed.
			I guess my laptops tend to give out on me long before that&apos;d be an issue, but I&apos;d worry about using a solid slate drive in one of my desktop machines, which I tend to use as home servers.
		</p>
		<p>
			Yeah, given the sources we&apos;re required to use, most if not all of the articles are going to contain plugs for the authoring companies&apos; products.
			It&apos;s why I don&apos;t trust this sort of website when I do research on my own time: all the articles are biased!
			The only time I&apos;d use this sort of site for research is when required to by a third party, such as how the school requires us to for this class.
			I certainly wouldn&apos;t trust any comparisons made in these articles without further research using more-reliable sources though.
		</p>
	</blockquote>
</section>
<section id="card">
	<h2>Credit card</h2>
	<p>
		The card with my workmate&apos;s name on it arrived in the mail today.
		As we agreed upon, they won&apos;t actually get the card; I&apos;ll keep that.
		It feels a bit odd having a card with someone else&apos;s name on it though.
		Having a fake name on a card is one thing, but this is the name of a real person, and someone I actually see regularly at that.
	</p>
</section>
<section id="Replicant">
	<h2>Upgrading Replicant</h2>
	<p>
		The other day, I realised that I should check online to see if Replicant 6 came out during the longer-than-a-year period in which my mobile was out of commission.
		I forgot before I could get home to check the website though.
		Today, the university sent me notification about when course registration dates are for the coming term, so I checked my plan and saw I&apos;m planning to take a course on mobile application development that term.
		That reminded me I needed to get Replicant upgraded before then if possible.
	</p>
	<p>
		It seems that Replicant 6 is indeed out and is available for my GT-i9100.
	</p>
	<p>
		However, there&apos;s a bunch of hoops I&apos;ve got to jump through.
		I&apos;ve got no Internet connection on the thing for now, which makes working with the applications difficult.
		After I install the new version, I&apos;m guessing I&apos;ll need to reinstall all my applications.
		Additionally, Orbot is no longer under free licensing, so I couldn&apos;t install the version available on F-Droid anyway.
		I&apos;ve got to copy my current copy of the application off the device somehow, then install it on the new installation.
		And will the old version of the application meant for the old version of the operating system work on the new version of the operating system?
		Who even knows.
		And if it doesn&apos;t, I&apos;ll need to try to track down a copy of the old version of Orbot online, a feat I&apos;ve tried in the past and failed.
		And until I get Orbot installed and running, nothing else can be done on the network; I won&apos;t be able to set up mobile service or use F-Droid to install other applications.
	</p>
	<p>
		I think what I need to do is find this one application on F-Droid that used to allow me to copy installed applications back to the accessible part of storrage.
		I&apos;ll download it from my laptop, then side load it onto the mobile.
		I can then copy Orbot and orWall off, along with Open Camera, just in case.
		Oh.
		Yeah.
		I forgot.
		I don&apos;t think orWall is even available any more.
		If I&apos;d forgotten to copy it off the device before upgrading, I&apos;d lose orWall forever and I wouldn&apos;t be able to connect my device to the network at all.
		After I&apos;ve copied my applications, I can try the upgrade.
	</p>
</section>
<section id="Minetest">
	<h2>Minetest</h2>
	<p>
		On the side, I&apos;ve been trying to work on my next big thing when it comes to Minetest modding.
		The simple fact is that if I&apos;m going to set up a server, I&apos;m going to want to customise the game to be something I&apos;ll enjoy playing and enjoy playing with others.
		For me, that means two major things.
		First, I need some sort of node-protection mod in place.
		I&apos;ve been puzzling out in my mind exactly what I want to do for that.
		I think I&apos;ve decided to dumb down the protection concept I&apos;ve previously used.
		I will enjoy it less, but I think most players will enjoy it more because it&apos;ll be so much easier to use.
		It&apos;ll be easy to code though, so no worries on that.
		The second thing I absolutely need is some purpose for <code>minestats</code>.
	</p>
	<p>
		My latest idea was elemental storage nodes that infinitely compress their contents (well, there&apos;d be a limit, but it&apos;d be really high), but only store a specific element.
		You can&apos;t even store items made from that element; the nodes only store one item, meaning that they don&apos;t need to keep track of what they&apos;re storing.
		They only need to retain the count, which is why they can store so many.
		These things would be dyeable, too, for limited customisation.
		So how do you get them?
		Well, you need to mine 65535 (that is, 2<sup>16</sup>-1, or sixteen bits unsigned) of the item that node stores.
		Then you&apos;ll have one added to your inventory in some way, possibly via a menu page that lets you pick when you get it, so it&apos;s not suddenly taking up valuable storage space when you&apos;re mining or farming.
		You&apos;d only need one of these to store more of the element than you&apos;d probably ever have, but if you mined the required amount again, you&apos;d get another one.
		You could theoretically get as many as you wanted, provided the map allowed you to find it (so basically, only for renewable elements), up to the point in which <code>minestats</code> gave out due to limitations in Minetest&apos;s Lua&apos;s integer precision.
		The main hindrance to this mod&apos;s planning was that I needed to figure out each element&apos;s storage vessel.
		For example, the string-storing node will probably be a giant spool.
		Ice will probably be stored in an ice chest (also known as a cooler), and coal would probably be stored in a topless metal box.
		But what do I put mushroom spores into?
		Or saplings?
		It&apos;d take a while to get the designs fleshed out, and there was no reason to write any code until I knew I had enough ideas to actually use with the code.
	</p>
	<p>
		Yesterday morning while I was fasting, before church, I made what I thought for a bit might be a breakthrough.
		Instead of the different storage vessels being dyeable, which was a feature I was going to include to make the most of the node space, I would instead make one node for all the elements, and it would use a different colour from a palette based on which element it stored.
		But what could cover so many diverse elements?
		I decided on statues of goddesses of the elements.
		They&apos;d be idols though, which I found ironic, seeing as I&apos;d come up with them while fasting for a god that forbids idols.
		But anyway, you&apos;d use the idols to sacrifice the element the given goddess was in charge of, and probably get some sort of boost for it, such as having more $a[HP] or more inventory space.
		You could later ask the goddess for the stuff back, but you&apos;d lose the bonus you&apos;d gotten, allowing it to pretty much be a storage node plus more.
		To top it off though, the node isn&apos;t the goddess, but an idol of the goddess, so you could use any such idol to withdraw.
		You wouldn&apos;t have to withdraw from the same idol you&apos;d deposited at, and could even deposit and withdraw using the idols of other players with no effect to those players, and they could use your idols likewise.
		I really thought I was onto something with this idea.
	</p>
	<p>
		There&apos;s the problem of ingots though.
		Most players smelt their metals fairly quickly so they can be compressed into blocks and stored more efficiently.
		By the time this awesome storage space was made available to them, they&apos;d have smelted their metals and they&apos;d no longer be storable.
		Today was when ideas really started flowing.
		I decided that because the supernatural was already involved, I might as well add a bit more.
		The goddess idols would be able to drain the element out of anything offered to them, provided the element was definitely in there.
		For example, glass can be made from regular sand, silver sand, or desert sand, but only regular sand is an element.
		Thus, glass cannot be drained of it&apos;s sand, as there&apos;s no way to know if it&apos;s even got any sand in it to drain.
		Ingots can be drained though, as there&apos;s only one metal each can be smelted from.
		After draining the element, some sort of remnant would be left behind.
		The remnant may be another known item.
		A mese lamp without the mese crystal is just a glass node.
		However, sometimes something new would be formed.
		What happens if you drain an ingot?
		Some sort of fuel went into it, so there&apos;s not just the metal any more.
		You&apos;re left with some sort of cooked nothingness.
		Maybe it&apos;s something simple such as char.
		Or maybe it&apos;s some sort of void ingot.
		In any case, many more-interesting items could be formed by stripping away the elements, such as void locked chests (storage in the ether?), or beds without any cotton (reversed effect of regular beds, sending you back to the place of your most-recent death?).
	</p>
	<p>
		I felt like these were sort of cursed or incomplete items though.
		Very few, if any, would have any negative effects, but it still made it seem like the goddesses were mere leeches.
		I didn&apos;t like it.
		I decided to counterbalance this with another use for the idol: enchantments.
		Any item that potentially had an elemental ingredient would be able to be enchanted with any of the elements it might contain.
		In the previous example of glass, glass can&apos;t be drained because it might not have sand in it, but it <strong>*can*</strong> be enchanted, because it might have sand in it.
		In the case of items with multiple elemental ingredients, only one enchantment could be used at a time.
		A second enchantment would erase the previous one.
		That way, I don&apos;t have an infinitely recursive number of nodes to define.
		Draining an item of the element it&apos;s enchanted by would also break the enchantment.
		However, the void pseudo-element isn&apos;t an enchantment, and can thus exist alongside enchantments, as long as at least one element is removed and at least one is retained.
	</p>
	<p>
		Personally, I liked the idol idea very much.
		However, as mentioned above, it adds a bunch of hard to obtain nodes that are actually the same node with a different palette index.
		I worried that people would be disappointed when they earned these rare nodes after putting in so much effort.
		They&apos;re pretty anti-climactic.
		So I went back to the idea of the specialised and individualised storage nodes, but this time with the void items and enchantments added.
		I still had a couple problems with the idea though.
		First, it takes a tonne of effort to unlock the enchantment for each element, but once you&apos;ve done that, you can pretty much ignore that stat forever.
		There&apos;s no reason to try to keep building up that stat.
		And secondly, enchanting items at a node sounds like something I think I heard Minecraft has: enchanting tables.
		I don&apos;t like to copy that game.
		The enchantments my mod would offer would be hugely different than Minecraft&apos;s enchantments, which I think just add tool effects.
		My mod instead is creating very different items via enchantment, and most of them will be nodes and not tools.
		Still, in the back of my mind, I kept thinking that it was too Minecrafty.
	</p>
	<p>
		Finally, I decided to throw out the storage idea, as well as the storage nodes, altogether.
		Enchantment can now be performed wherever you want from your main menu.
		You&apos;re a mage, you don&apos;t need to go home to cast your spells!
		For a while now, I&apos;ve been imagining an interface for an elemental affinity page, in which your affinities are determined by how much you&apos;ve mined.
		I&apos;ve had no ideas on how to use those affinities though.
		In this new iteration of the originally-storage idea though, that interface can instead display mana levels instead of hard-stat-based levels.
		Each time you mine a stack of some element, you get one mana of that element, and you&apos;re able to use it to enchant one item with the relevant spell.
		This serves a couple useful purposes.
		First, it restricts enchantments.
		Even if you get the 65535 of an element mined, you&apos;ll still need to keep going if you use up all your mana and want to enchant more.
		Second, it allows access to enchantments fairly early on.
		Enchantments don&apos;t have to be an end-of-game feature just to prevent overuse early on.
	</p>
	<p>
		Finally, I think this is the sort of mod that is both worthy of the name <code>minequest</code>, and within the realm of feasibility.
		My previous <code>minequest</code>-named mod ideas always involved adding new abilities onto the game that drastically change the gameplay in some way, but at the same time, I didn&apos;t want the gameplay changed much.
		This time, what&apos;s added is a way to get access to new items.
		These items will be mostly tools and nodes, which will fit right into normal Minetest Game gameplay.
		It mostly behaves like Minetest Game already does, instead of redefining what the game&apos;s about.
	</p>
	<p>
		Void-pseudo-element items might make their way into the mod, but probably won&apos;t, due to mass storage no longer being a key aspect of the mod.
	</p>
</section>
END
);
